package com.csun.cmny.provider.service;

import com.csun.cmny.base.dto.LoginAuthDto;
import com.csun.cmny.core.support.IService;
import com.csun.cmny.provider.model.domain.DmcFallRadarLocation;
import com.csun.cmny.provider.model.dto.csundoor.BindCsunDoorLocationDto;
import com.csun.cmny.provider.model.dto.csundoor.CsunDoorPageQuery;
import com.csun.cmny.provider.model.dto.fallradar.BindFallRadarLocationDto;
import com.csun.cmny.provider.model.dto.fallradar.FallRadarPageQuery;
import com.csun.cmny.provider.model.dto.propertyManagement.SelectDeviceDataDto;
import com.csun.cmny.provider.model.vo.csundoor.DmcCsunDoorVo;
import com.csun.cmny.provider.model.vo.fallradar.DmcFallRadarVo;
import com.csun.cmny.provider.model.vo.propertyManagement.PropertyDataVo;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2020-06-18 10:00
 * @Description:
 */
public interface DmcFallRadarLocationService extends IService<DmcFallRadarLocation> {

    /**
     * break fall radar location or bed or oldId
     * @param deviceId  device id
     * @return  the int.
     */
    Integer breakFallRadarLocation(Long deviceId);

    /**
     * query fall radar list with page
     *
     * @param fallRadarPageQuery  page query
     *
     * @return  thee info.
     */
    PageInfo queryGroupFallRadarListWithPage(FallRadarPageQuery fallRadarPageQuery);

    /**
     * get fall radar by device id
     *
     * @param deviceId  device id
     *
     * @return  dmc csun door vo
     */
    DmcFallRadarVo getFallRadarByDeviceId(Long deviceId);

    /**
     * get fall radar by device id
     *
     * @param deviceNo  device no
     *
     * @return  dmc csun door vo
     */
    DmcFallRadarVo getFallRadarByDeviceNo(String deviceNo);

    /**
     * delete fall radar by id
     *
     * @param id    the id
     *
     * @return  the int.
     */
    Integer deleteFallRadarById(Long id);

    /**
     * bind fall radar location
     *
     * @param bindFallRadarLocationDto
     * @param loginAuthDto
     *
     * @return
     */
    Integer bindFallRadarLocation(BindFallRadarLocationDto bindFallRadarLocationDto, LoginAuthDto loginAuthDto);

    List<PropertyDataVo> selectDeviceData(SelectDeviceDataDto selectDeviceDataDto);
}
